import axios from 'axios'; import cookie from 'cookie'; import dynamic from 'next/dynamic'; import { useRouter } from 'next/router'; import { useEffect } from 'react'; import { useProductContext } from '@/contexts/ProductContext'; import Seo from '@/core/components/Seo'; import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner'; import { getIdFromSlug } from '@/core/utils/slug'; import PageNotFound from '@/pages/404'; const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout') ); const Product = dynamic(() => import('@/lib/product/components/Product/Product') ); export async function getServerSideProps(context) { const { slug } = context.query; const cookies = context.req.headers.cookie; const cookieObj = cookies ? cookie.parse(cookies) : {}; const auth = cookieObj.auth ? JSON.parse(cookieObj.auth) : {}; const tier = auth.pricelist ? auth.pricelist : false; const authToken = auth?.token || ''; let response = await axios( `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/variant-detail?id=` + getIdFromSlug(slug) + '&auth=' + tier ); let product = response.data; // let product = await variantApi({ id: getIdFromSlug(slug), headers: { Token: authToken } }) if (product?.length == 1) { product = product[0]; /* const regexHtmlTags = /(<([^>]+)>)/gi const regexHtmlTagsExceptP = /<\/?(?!p\b)[^>]*>/g product.description = product.description .replace(regexHtmlTagsExceptP, ' ') .replace(regexHtmlTags, ' ') .trim()*/ } else { product = null; } return { props: { product }, }; } export default function ProductDetail({ product }) { const router = useRouter(); const { setProduct } = useProductContext(); useEffect(() => { if (product) { setProduct(product); } }, [product, setProduct]); if (!product) return ; return ( {!product && (
)} {product && }
); }